package com.moli.iov.sys.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.moli.iov.sys.model.dto.req.PermissionDto;
import com.moli.iov.sys.model.dto.req.PermissionNeApiDto;
import com.moli.iov.sys.model.po.Permission;
import java.util.List;

/**
 * <p>
 *  权限业务
 * </p>
 *
 * @author zql
 * @since 2019/9/6 15:11
 */
public interface IPermissionService extends IService<Permission> {


  /**
   * 递归查询权限列表
   * @param permissionDto
   * @return
   */
  List<Permission> listPermission(PermissionDto permissionDto);

  /**
   * 递归查询非api权限
   * @param permissionNeApiDto
   * @return
   */
  List<Permission> listPermissionNeApi(PermissionNeApiDto permissionNeApiDto);


  /**
   * 查询权限列表，by 权限ids
   * @param permissionIds
   * @return
   */
  List<Permission> listPermissionByIds(List<Long> permissionIds);

  /**
   * 根据权限ids集合 获取api权限: 包含按钮、Api
   * @param permissionIds
   * @return
   */
  List<Permission> listApiAndBtnPermissions(List<Long> permissionIds);

  /**
   * 获取所有的api权限: 包含按钮、Api
   * @return
   */
  List<Permission> listApiAndBtnPermissionsOfAll();
}
